﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace TS2015
{
    public class ValidateFileAttribute : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            int maxContent = 1024 * 1024 * 100; //100 MB
            string[] sAllowedExt = new string[] { ".jpg", ".gif", ".png", ".ico", ".bmp", ".jpeg" };


            var file = value as HttpPostedFileBase;

            if (file == null)
                return true;
            else if (!sAllowedExt.Contains(file.FileName.Substring(file.FileName.LastIndexOf('.'))))
            {
                ErrorMessage = "File tải lên không đúng định dạng: " + string.Join(", ", sAllowedExt);
                return false;
            }
            else if (file.ContentLength > maxContent)
            {
                ErrorMessage = "Kích thước file quá lớn với giới hạn: " + (maxContent / 1024).ToString() + "MB";
                return false;
            }
            else
                return true;
        }

        //public int MaxLength { get; set; }
        //public string[] Allowed { get; set; }
        //public override bool IsValid(object value)
        //{
        //    var file = value as HttpPostedFileBase;
        //    if (file == null)
        //    {
        //        return false;
        //    }
        //    if (file.ContentLength > MaxLength)
        //    {
        //        return false;
        //    }
        //    if (string.IsNullOrEmpty(file.FileName) && string.IsNullOrWhiteSpace(file.FileName))
        //    {
        //        return false;
        //    }
        //    if (!Allowed.Contains(file.FileName.Substring(file.FileName.LastIndexOf('.'))))
        //    {
        //        return false;
        //    }
        //    return true;
        //}
    }
}